#include <fhe/math/Math.h>
#include <cmath>

namespace fhe
{
  namespace core
  {
    bool Math::equal( double d1, double d2, double eps )
    {
      return abs( d1 - d2 ) <= eps;
    }
    
    double Math::abs( double d )
    {
      return ::fabs( d );
    }
    
    double Math::sqrt( double d )
    {
      return ::sqrt( d );
    }
    
    double Math::max( double d1, double d2 )
    {
      return d1 > d2 ? d1 : d2;
    }
    
    double Math::cos( double t )
    {
      return ::cos( t );
    }
    
    double Math::sin( double t )
    {
      return ::sin( t );
    }
    
    double Math::acos( double t )
    {
      return ::acos( t );
    }
    
    double Math::asin( double t )
    {
      return ::asin( t );
    }
    
    double Math::atan2( double y, double x )
    {
      return ::atan2( y, x );
    }
    
    double Math::radians( double degrees )
    {
      return degrees * PI / 180.;
    }
    
    double Math::degrees( double radians )
    {
      return radians * 180. / PI;
    }
  }
}
